This disclosure generally relates to web applications performance troubleshooting.
In web application software development, tracing can be used to identify performance problems, e.g., latency issues. A software developer can use tracing to record information generated by a software program. The information can include low-level events such as thrown exceptions. The developer can use this information to determine what caused the exceptions to be thrown and what caused latency in execution.
Many modern Internet applications are implemented on distributed systems, where various functionalities are performed by different software modules developed by different teams and run on different hosts. The modules can communicate with each other using communication protocols such as HTTP (Hypertext Transfer Protocol). Distributed tracing tools that can record information across the modules can help a developer identify a performance issue on any host. An example of a distributed tracing tool is Zipkin, which can provide tracing functionalities in a microservice-based architecture.